﻿using System.Collections.Generic;

namespace GauSmart.core
{
    public enum SuitabilityType
    {
        LEAST = 1,
        LESS = 2,
        SUITABLE = 3,
        MORE = 4,
        MOST = 5
    }

    public class Suitability : ISuitability
    {
        public string name;
        public bool asc;
        public Range[] ranges;

        public Suitability(string name, bool asc, double least,
            double less, double suitable, double more, double most)
        {
            this.name = name;
            this.asc = asc;
            ranges = new[] {
                new Range(least, SuitabilityType.LEAST),
                new Range(less, SuitabilityType.LESS),
                new Range(suitable, SuitabilityType.SUITABLE),
                new Range(more, SuitabilityType.MORE),
                new Range(most, SuitabilityType.MOST)
            };
        }
    }

    public class ComputedSuitability : ISuitability
    {
        public string name;
        public List<SuitabilityType> suitabilityTypeList;

        public ComputedSuitability(string name, List<SuitabilityType> suitabilityTypeList)
        {
            this.name = name;
            this.suitabilityTypeList = suitabilityTypeList;
        }
    }

    public class ResultSuitability : ISuitability
    {
        public string Name { get; set; }
    }
}
